dW5rbm93biBoYXNoAgAAAAAAAAABAAAAAQAAAAEAAAAEAAAABQAAAAEAAAAAAAAA/////wcABwAHAAAABwAAAAMAAABQiwAA8o0AAAoAAABpblBvc2l0aW9uDAAAAF91aW5Qb3NpdGlvbgAAAAABAAAAAQAAAAAAAAAAAAAAUosAAPGNAAAHAAAAaW5Db2xvcgkAAABfdWluQ29sb3IAAAAAAQAAAAEAAAAAAAAAAQAAAFCLAADyjQAADAAAAGluTG9jYWxDb29yZA4AAABfdWluTG9jYWxDb29yZAAAAAABAAAAAQAAAAAAAAACAAAABQAAAFKLAADyjQAACwAAAHNrX1JUQWRqdXN0DQAAAF91c2tfUlRBZGp1c3QAAAAAAQAAAAEAAAAAAAAA/////////////////////wAAAABbiwAA8o0AAB4AAAB1Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTAgAAAAX3V1Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTAAAAAAAQAAAAEAAAAAAAAA/////////////////////wAAAABQiwAA8Y0AABYAAAB1SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxGAAAAF91dUltYWdlSW5jcmVtZW50X1N0YWdlMQAAAAABAAAAAQAAAAAAAAD/////////////////////AAAAAFKLAADxjQAAEQAAAHVLZXJuZWxfU3RhZ2UxWzBdEwAAAF91dUtlcm5lbF9TdGFnZTFbMF0BAAAABAAAAAEAAAABAAAAAAAAAP////////////////////8AAAAAXosAAAAAAAAYAAAAdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxGgAAAF91dVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxAAAAAAEAAAABAAAAAAAAAP////////////////////8AAAAACAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAEAAAADAAAAAAAAAAIAAAADAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIwAAAAAAAAAAAAAAAAAAAEAAAAGFAAAAQABAAEAAAAEAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAFAAAABQAAAAAAAAAFAAAABQAAAAMAAACGgAAAEhkAAEMQlIYGAAAAALEAAAAAAAAAAAAAAQAAAAIAAAD/////////////////////////////////////////////////////////////////////EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAP///////////////wEAAAAAAAAAAAAAAAEAAAD///////////////8DAAAAAAAAAAAAAAD/////AAAAAP//////////AQAAAAAAAAAAAAAA/////wEAAAD//////////wQAAAAAAAAAAQAAAP////8AAAAA//////////8BAAAAAAAAAAAAAAAAAAAA8gcAAHN0cnVjdCBWU19PVVRQVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDI7CiAgICBmbG9hdDQgdjAgOiBURVhDT09SRDA7CiAgICBmbG9hdDIgdjEgOiBURVhDT09SRDE7Cn07CmZsb2F0MyB2ZWMzX2N0b3IoZmxvYXQyIHgwLCBmbG9hdCB4MSkKewogICAgcmV0dXJuIGZsb2F0Myh4MCwgeDEpOwp9CmZsb2F0NCB2ZWM0X2N0b3IoZmxvYXQgeDAsIGZsb2F0IHgxLCBmbG9hdCB4MiwgZmxvYXQgeDMpCnsKICAgIHJldHVybiBmbG9hdDQoeDAsIHgxLCB4MiwgeDMpOwp9CmZsb2F0NCB2ZWM0X2N0b3IoZmxvYXQyIHgwLCBmbG9hdCB4MSwgZmxvYXQgeDIpCnsKICAgIHJldHVybiBmbG9hdDQoeDAsIHgxLCB4Mik7Cn0KLy8gVW5pZm9ybXMKCnVuaWZvcm0gZmxvYXQ0IF9za19SVEFkanVzdCA6IHJlZ2lzdGVyKGMwKTsKdW5pZm9ybSBmbG9hdDN4MyBfdUNvb3JkVHJhbnNmb3JtTWF0cml4XzBfU3RhZ2UwIDogcmVnaXN0ZXIoYzEpOwojaWZkZWYgQU5HTEVfRU5BQkxFX0xPT1BfRkxBVFRFTgojZGVmaW5lIExPT1AgW2xvb3BdCiNkZWZpbmUgRkxBVFRFTiBbZmxhdHRlbl0KI2Vsc2UKI2RlZmluZSBMT09QCiNkZWZpbmUgRkxBVFRFTgojZW5kaWYKCiNkZWZpbmUgQVRPTUlDX0NPVU5URVJfQVJSQVlfU1RSSURFIDQKCi8vIEF0dHJpYnV0ZXMKc3RhdGljIGZsb2F0MiBfaW5Qb3NpdGlvbiA9IHswLCAwfTsKc3RhdGljIGZsb2F0NCBfaW5Db2xvciA9IHswLCAwLCAwLCAwfTsKc3RhdGljIGZsb2F0MiBfaW5Mb2NhbENvb3JkID0gezAsIDB9OwoKc3RhdGljIGZsb2F0NCBnbF9Qb3NpdGlvbiA9IGZsb2F0NCgwLCAwLCAwLCAwKTsKCi8vIFZhcnlpbmdzCnN0YXRpYyAgZmxvYXQ0IF92Y29sb3JfU3RhZ2UwID0gezAsIDAsIDAsIDB9OwpzdGF0aWMgIGZsb2F0MiBfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwID0gezAsIDB9OwoKY2J1ZmZlciBEcml2ZXJDb25zdGFudHMgOiByZWdpc3RlcihiMSkKewogICAgZmxvYXQ0IGR4X1ZpZXdBZGp1c3QgOiBwYWNrb2Zmc2V0KGMxKTsKICAgIGZsb2F0MiBkeF9WaWV3Q29vcmRzIDogcGFja29mZnNldChjMik7CiAgICBmbG9hdDIgZHhfVmlld1NjYWxlICA6IHBhY2tvZmZzZXQoYzMpOwp9OwoKQEAgVkVSVEVYIEFUVFJJQlVURVMgQEAKClZTX09VVFBVVCBnZW5lcmF0ZU91dHB1dChWU19JTlBVVCBpbnB1dCkKewogICAgVlNfT1VUUFVUIG91dHB1dDsKICAgIG91dHB1dC5nbF9Qb3NpdGlvbiA9IGdsX1Bvc2l0aW9uOwogICAgb3V0cHV0LmR4X1Bvc2l0aW9uLnggPSBnbF9Qb3NpdGlvbi54OwogICAgb3V0cHV0LmR4X1Bvc2l0aW9uLnkgPSAtIGdsX1Bvc2l0aW9uLnk7CiAgICBvdXRwdXQuZHhfUG9zaXRpb24ueiA9IChnbF9Qb3NpdGlvbi56ICsgZ2xfUG9zaXRpb24udykgKiAwLjU7CiAgICBvdXRwdXQuZHhfUG9zaXRpb24udyA9IGdsX1Bvc2l0aW9uLnc7CiAgICBvdXRwdXQudjAgPSBfdmNvbG9yX1N0YWdlMDsKICAgIG91dHB1dC52MSA9IF92VHJhbnNmb3JtZWRDb29yZHNfMF9TdGFnZTA7CgogICAgcmV0dXJuIG91dHB1dDsKfQoKVlNfT1VUUFVUIG1haW4oVlNfSU5QVVQgaW5wdXQpewogICAgaW5pdEF0dHJpYnV0ZXMoaW5wdXQpOwoKZmxvYXQ0IF9jb2xvciA9IF9pbkNvbG9yOwooX3Zjb2xvcl9TdGFnZTAgPSBfY29sb3IpOwpmbG9hdDIgX3BvczIgPSBfaW5Qb3NpdGlvbjsKKF92VHJhbnNmb3JtZWRDb29yZHNfMF9TdGFnZTAgPSBtdWwodHJhbnNwb3NlKF91Q29vcmRUcmFuc2Zvcm1NYXRyaXhfMF9TdGFnZTApLCB2ZWMzX2N0b3IoX2luTG9jYWxDb29yZCwgMS4wKSkueHkpOwooZ2xfUG9zaXRpb24gPSB2ZWM0X2N0b3IoX3BvczIueCwgX3BvczIueSwgMC4wLCAxLjApKTsKKGdsX1Bvc2l0aW9uID0gdmVjNF9jdG9yKCgoZ2xfUG9zaXRpb24ueHkgKiBfc2tfUlRBZGp1c3QueHopICsgKGdsX1Bvc2l0aW9uLnd3ICogX3NrX1JUQWRqdXN0Lnl3KSksIDAuMCwgZ2xfUG9zaXRpb24udykpOwpyZXR1cm4gZ2VuZXJhdGVPdXRwdXQoaW5wdXQpOwp9CgAAADQRAABzdHJ1Y3QgUFNfSU5QVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDI7CiAgICBmbG9hdDQgdjAgOiBURVhDT09SRDA7CiAgICBmbG9hdDIgdjEgOiBURVhDT09SRDE7Cn07CgovLyBVbmlmb3JtcwoKdW5pZm9ybSBmbG9hdDIgX3VJbWFnZUluY3JlbWVudF9TdGFnZTEgOiByZWdpc3RlcihjMCk7CnVuaWZvcm0gZmxvYXQ0IF91S2VybmVsX1N0YWdlMVs0XSA6IHJlZ2lzdGVyKGMxKTsKc3RhdGljIGNvbnN0IHVpbnQgX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSA9IDA7CnVuaWZvcm0gVGV4dHVyZTJEPGZsb2F0ND4gdGV4dHVyZXMyRFsxXSA6IHJlZ2lzdGVyKHQwKTsKdW5pZm9ybSBTYW1wbGVyU3RhdGUgc2FtcGxlcnMyRFsxXSA6IHJlZ2lzdGVyKHMwKTsKI2lmZGVmIEFOR0xFX0VOQUJMRV9MT09QX0ZMQVRURU4KI2RlZmluZSBMT09QIFtsb29wXQojZGVmaW5lIEZMQVRURU4gW2ZsYXR0ZW5dCiNlbHNlCiNkZWZpbmUgTE9PUAojZGVmaW5lIEZMQVRURU4KI2VuZGlmCgojZGVmaW5lIEFUT01JQ19DT1VOVEVSX0FSUkFZX1NUUklERSA0CgovLyBWYXJ5aW5ncwpzdGF0aWMgIGZsb2F0NCBfdmNvbG9yX1N0YWdlMCA9IHswLCAwLCAwLCAwfTsKc3RhdGljICBmbG9hdDIgX3ZUcmFuc2Zvcm1lZENvb3Jkc18wX1N0YWdlMCA9IHswLCAwfTsKCnN0YXRpYyBmbG9hdDQgZ2xfQ29sb3JbMV0gPQp7CiAgICBmbG9hdDQoMCwgMCwgMCwgMCkKfTsKCmNidWZmZXIgRHJpdmVyQ29uc3RhbnRzIDogcmVnaXN0ZXIoYjEpCnsKICAgIHN0cnVjdCBTYW1wbGVyTWV0YWRhdGEKICAgIHsKICAgICAgICBpbnQgYmFzZUxldmVsOwogICAgICAgIGludCBpbnRlcm5hbEZvcm1hdEJpdHM7CiAgICAgICAgaW50IHdyYXBNb2RlczsKICAgICAgICBpbnQgcGFkZGluZzsKICAgICAgICBpbnQ0IGludEJvcmRlckNvbG9yOwogICAgfTsKICAgIFNhbXBsZXJNZXRhZGF0YSBzYW1wbGVyTWV0YWRhdGFbMV0gOiBwYWNrb2Zmc2V0KGM0KTsKfTsKCiNkZWZpbmUgR0xfVVNFU19GUkFHX0NPTE9SCmZsb2F0NCBnbF90ZXh0dXJlMkQodWludCBzYW1wbGVySW5kZXgsIGZsb2F0MiB0LCBmbG9hdCBiaWFzKQp7CiAgICByZXR1cm4gdGV4dHVyZXMyRFtzYW1wbGVySW5kZXhdLlNhbXBsZUJpYXMoc2FtcGxlcnMyRFtzYW1wbGVySW5kZXhdLCBmbG9hdDIodC54LCB0LnkpLCBiaWFzKTsKfQoKQEAgUElYRUwgT1VUUFVUIEBACgpQU19PVVRQVVQgbWFpbihQU19JTlBVVCBpbnB1dCl7CiAgICBfdmNvbG9yX1N0YWdlMCA9IGlucHV0LnYwOwogICAgX3ZUcmFuc2Zvcm1lZENvb3Jkc18wX1N0YWdlMCA9IGlucHV0LnYxLnh5OwoKZmxvYXQ0IF9vdXRwdXRDb2xvcl9TdGFnZTAgPSB7MCwgMCwgMCwgMH07CnsKKF9vdXRwdXRDb2xvcl9TdGFnZTAgPSBfdmNvbG9yX1N0YWdlMCk7Cn0KZmxvYXQ0IF9vdXRwdXRfU3RhZ2UxID0gezAsIDAsIDAsIDB9Owp7Cihfb3V0cHV0X1N0YWdlMSA9IGZsb2F0NCgwLjAsIDAuMCwgMC4wLCAwLjApKTsKZmxvYXQyIF9jb29yZCA9IChfdlRyYW5zZm9ybWVkQ29vcmRzXzBfU3RhZ2UwIC0gKDcuMCAqIF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKSk7CmZsb2F0MiBfY29vcmRTYW1wbGVkID0gezAuMCwgMC4wfTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzBdLngpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVswXS55KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMF0ueikpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzBdLncpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVsxXS54KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMV0ueSkpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzFdLnopKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVsxXS53KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMl0ueCkpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzJdLnkpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVsyXS56KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbMl0udykpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9jb29yZFNhbXBsZWQgPSBfY29vcmQpOwooX291dHB1dF9TdGFnZTEgKz0gKGdsX3RleHR1cmUyRChfdVRleHR1cmVTYW1wbGVyXzBfU3RhZ2UxLCBfY29vcmRTYW1wbGVkLCAtMC41KS54eHh4ICogX3VLZXJuZWxfU3RhZ2UxWzNdLngpKTsKKF9jb29yZCArPSBfdUltYWdlSW5jcmVtZW50X1N0YWdlMSk7CihfY29vcmRTYW1wbGVkID0gX2Nvb3JkKTsKKF9vdXRwdXRfU3RhZ2UxICs9IChnbF90ZXh0dXJlMkQoX3VUZXh0dXJlU2FtcGxlcl8wX1N0YWdlMSwgX2Nvb3JkU2FtcGxlZCwgLTAuNSkueHh4eCAqIF91S2VybmVsX1N0YWdlMVszXS55KSk7CihfY29vcmQgKz0gX3VJbWFnZUluY3JlbWVudF9TdGFnZTEpOwooX2Nvb3JkU2FtcGxlZCA9IF9jb29yZCk7Cihfb3V0cHV0X1N0YWdlMSArPSAoZ2xfdGV4dHVyZTJEKF91VGV4dHVyZVNhbXBsZXJfMF9TdGFnZTEsIF9jb29yZFNhbXBsZWQsIC0wLjUpLnh4eHggKiBfdUtlcm5lbF9TdGFnZTFbM10ueikpOwooX2Nvb3JkICs9IF91SW1hZ2VJbmNyZW1lbnRfU3RhZ2UxKTsKKF9vdXRwdXRfU3RhZ2UxICo9IF9vdXRwdXRDb2xvcl9TdGFnZTApOwp9CnsKKGdsX0NvbG9yWzBdID0gX291dHB1dF9TdGFnZTEpOwp9CihnbF9Db2xvclswXSA9IGdsX0NvbG9yWzBdLnd3d3cpOwpyZXR1cm4gZ2VuZXJhdGVPdXRwdXQoKTsKfQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFKLAAAJAAAAZ2xfQ29sb3IwCwAAAGdsX0NvbG9yWzBdAAAAAFICAABzdHJ1Y3QgR1NfSU5QVVQKewogICAgZmxvYXQ0IGR4X1Bvc2l0aW9uIDogU1ZfUG9zaXRpb247CiAgICBmbG9hdDQgZ2xfUG9zaXRpb24gOiBURVhDT09SRDI7CiAgICBmbG9hdDQgdjAgOiBURVhDT09SRDA7CiAgICBmbG9hdDIgdjEgOiBURVhDT09SRDE7Cn07CgpzdHJ1Y3QgR1NfT1VUUFVUCnsKICAgIGZsb2F0NCBkeF9Qb3NpdGlvbiA6IFNWX1Bvc2l0aW9uOwogICAgZmxvYXQ0IGdsX1Bvc2l0aW9uIDogVEVYQ09PUkQyOwogICAgZmxvYXQ0IHYwIDogVEVYQ09PUkQwOwogICAgZmxvYXQyIHYxIDogVEVYQ09PUkQxOwp9OwoKdm9pZCBjb3B5VmVydGV4KGlub3V0IEdTX09VVFBVVCBvdXRwdXQsIEdTX0lOUFVUIGlucHV0LCBHU19JTlBVVCBmbGF0aW5wdXQpCnsKICAgIG91dHB1dC5nbF9Qb3NpdGlvbiA9IGlucHV0LmdsX1Bvc2l0aW9uOwogICAgb3V0cHV0LnYwID0gaW5wdXQudjA7IAogICAgb3V0cHV0LnYxID0gaW5wdXQudjE7IAojaWZuZGVmIEFOR0xFX1BPSU5UX1NQUklURV9TSEFERVIKICAgIG91dHB1dC5keF9Qb3NpdGlvbiA9IGlucHV0LmR4X1Bvc2l0aW9uOwojZW5kaWYgIC8vIEFOR0xFX1BPSU5UX1NQUklURV9TSEFERVIKfQoBAAAAAwAAAIEAAABxAAAAgQAAAPQEAABEWEJDGyvQAn1yZcS2xhiGrTNc5gEAAAD0BAAABQAAADQAAAC8AQAAIAIAAKgCAABYBAAAUkRFRoABAAABAAAAaAAAAAEAAAA8AAAAAAX+/wDBAABYAQAAUkQxMTwAAAAYAAAAIAAAACgAAAAkAAAADAAAAAAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAACRHbG9iYWxzAKurq1wAAAACAAAAgAAAAEAAAAAAAAAAAAAAANAAAAAAAAAAEAAAAAIAAADkAAAAAAAAAP////8AAAAA/////wAA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